package com.snsoft.service.duty;

import java.sql.SQLException;
import java.util.Map;

import com.snsoft.bean.User;
import com.snsoft.dao.DutyDao;
import com.snsoft.dao.UserDao;
import com.snsoft.exception.DataIsNull;
import com.snsoft.exception.PromiseRefused;
import com.snsoft.exception.UserExist;

/**
 * 
 * @author 苏国启
 * 
 * @date 2017年11月9日 下午8:21:20
 * 
 * @Description TODO 添加用户的业务逻辑
 *
 */
public class AddUserService {
	/**
	 * 添加用户的service，需先判断用户是否存在
	 * 
	 * @param user
	 * @param operRole
	 * @return
	 * @throws UserExist
	 * @throws SQLException
	 * @throws PromiseRefused
	 * @throws DataIsNull
	 */
	public Map<String, Object> addUser(User user, int operRole)
			throws UserExist, SQLException, PromiseRefused, DataIsNull {
		Map<String, Object> data = null;
		// 校验usercode的唯一性
		if (new UserDao().getUser(user.getUserCode()) != null) {
			throw new UserExist("用户帐号已存在！");
		}
		// 负责人添加负责人的情况
		if (user.getRole() == 2 && operRole == 2) {
			throw new PromiseRefused("负责人无法添加负责人用户！");
		}
		data = new DutyDao().adduser(user);
		if (data.isEmpty()) {
			throw new DataIsNull("用户添加失败，请再次添加！");
		}
		return data;
	}
}
